#include <stdio.h>

/*
 * 冒泡排序：
 * 从小到大进行排序，使用数组来实现
 * 冒泡排序的思想：
 * 假设我们有一个无序的数组arr,长度是N
 * 第一次：[0,N-1] 要查找的范围  在这个范围里找到最大值
 *   (1) max = findMax(arr[],0,N-1)
 *   (2) 放到数组范围的最后位置 arr[N-1]=max
 *
 * 第2次： [0,N-2] 要查找的范围
 *    （0)max = findMax(arr[],0,N-2) 在该范围找到最大值，此时是整个数组arr[0,N-1]次大值
 *    （1）放到此时数组查找范围的最后位置 [0,N-2]  arr[N-2]=max
 *
 * ...............
 *
 * 对于在原数组上进行排序，我们通过两两比较，如果前值较大，则前后值进行交换的方式，来实现大的数组排在最后的位置。
 *
 *
 *
 *
 * */
/*  bubble  sort
 * 函数名：bubbleSort()
 * 输入：一个无序的数组，数组的长度N
 * 输出：无
 * */
void bubbleSort(int arr[],int N){
    for (int i = N-1; i >= 0; i--) {
        //第k次，我们将最大值放到最后的位置  k=N-i
        int tmp;
        for (int j = 0; j < i; ++j) {
            // 前值比后值大，则进行交换
            if(arr[j]>arr[j+1]){
                tmp =arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
        }
    }
}
int main() {

    int arr[5]={3,2,1,6,9};
    bubbleSort(arr,5);
   // printf("Hello, World!\n");
    return 0;
}
